package org.lhy.hubuoj.judge;

import org.lhy.hubuoj.judge.impl.ExampleCodeSandBox;
import org.lhy.hubuoj.judge.impl.RemoteCodeSandBox;
import org.lhy.hubuoj.judge.impl.ThirdPartyCodeSandBox;

/**
 * 代码沙箱工厂（根据传入的字符串生成指定的对象）
 *
 * @author 没天赋
 * @since 2025-04-06
 */
public class CodeSandBoxFactory {

    /**
     * 创建代码沙箱事例
     * @param type 事例类型
     * @return
     */
    public static CodeSandBox newInstance(String type) {
        return switch (type) {
            case "example" -> new ExampleCodeSandBox();
            case "remote" -> new RemoteCodeSandBox();
            case "thirdParty" -> new ThirdPartyCodeSandBox();
            default -> new ExampleCodeSandBox();
        };
    }
}
